home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Celestin Apprentice 7
/
Apprentice-Release7.iso
/
Source Code
/
Pascal
/
Snippets
/
PNL Libraries
/
Libraries
/
SpriteWorld
/
SpriteWorld files
/
Interfaces
/
SpriteLayer.p
< prev
next >
Wrap
Text File
|
1996-11-02
|
3KB
|
77 lines
unit SpriteLayer;
interface
uses
{$IFC undefined THINK_Pascal}
Types,
{$ENDC}
SWCommonHeaders, Sprite;
{$PUSH}
{$ALIGN MAC68K}
{/--------------------------------------------------------------------------------------}
{ SpriteLayer.h}
{}
{ Portions are copyright: © 1991-94 Tony Myles, All rights reserved worldwide.}
{}
{ Description: constants, structures, and prototypes for sprite layers}
{/--------------------------------------------------------------------------------------}
{/--------------------------------------------------------------------------------------}
{ sprite layer type definitions}
{/--------------------------------------------------------------------------------------}
{/--------------------------------------------------------------------------------------}
{ sprite layer data structure}
{/--------------------------------------------------------------------------------------}
type
SpriteLayerPtr = ^SpriteLayerRec;
SpriteLayerHdl = ^SpriteLayerPtr;
SpriteLayerRec = record
nextSpriteLayerP: SpriteLayerPtr; { next sprite layer}
prevSpriteLayerP: SpriteLayerPtr; { previous sprite layer}
headSpriteP: SpritePtr; { head of sprite linked list}
tailSpriteP: SpritePtr; { tail of sprite linked list}
userData: LongInt; { reserved for user}
end;
{/--------------------------------------------------------------------------------------}
{ sprite layer function prototypes}
{/--------------------------------------------------------------------------------------}
function SWCreateSpriteLayer (var spriteLayerP: SpriteLayerPtr): OSErr;
procedure SWDisposeSpriteLayer (spriteLayerP: SpriteLayerPtr);
procedure SWAddSprite (spriteLayerP: SpriteLayerPtr; newSpriteP: SpritePtr);
procedure SWRemoveSprite (spriteLayerP: SpriteLayerPtr; oldSpriteP: SpritePtr);
procedure SWRemoveAllSpritesFromLayer (srcSpriteLayerP: SpriteLayerPtr);
procedure SWSwapSprite (spriteLayerP: SpriteLayerPtr; srcSpriteP: SpritePtr; dstSpriteP: SpritePtr);
procedure SWInsertSpriteAfterSprite (spriteLayerP: SpriteLayerPtr; newSpriteP: SpritePtr; dstSpriteP: SpritePtr);
procedure SWInsertSpriteBeforeSprite (spriteLayerP: SpriteLayerPtr; newSpriteP: SpritePtr; dstSpriteP: SpritePtr);
function SWGetNextSprite (spriteLayerP: SpriteLayerPtr; curSpriteP: SpritePtr): SpritePtr;
procedure SWLockSpriteLayer (spriteLayerP: SpriteLayerPtr);
procedure SWUnlockSpriteLayer (spriteLayerP: SpriteLayerPtr);
procedure SWMoveSpriteLayer (spriteLayerP: SpriteLayerPtr);
procedure SWCollideSpriteLayer (spriteWorldP: SpriteWorldPtr; { SpriteWorldPtr - weird C forward declaration thing going on here }
srcSpriteLayerP: SpriteLayerPtr; dstSpriteLayerP: SpriteLayerPtr);
function SWFindSpriteByPoint (spriteLayerP: SpriteLayerPtr; startSpriteP: SpritePtr; testPoint: Point): SpritePtr;
{$ALIGN RESET}
{$POP}
{$IFC not undefined THINK_Pascal}
implementation
{$ENDC}
end.